--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Node / ReticulumProjects / MeshChatX.git / files / tests / backend / test_interface_config_parser.py
Displaying Raw • Download
tests/backend/test_interface_config_parser.py 17e20e7724b25d4e2fc9b2195a36ff57b6a75189 (17e20e77) Text, 1.58 KB
T8b949e# SPDX-License-Identifier: 0BSD
Tff7b72from T7ee787meshchatxT7ee787.T7ee787srcT7ee787.T7ee787backendT7ee787.T7ee787interface_config_parser Tff7b72import Te6edf3InterfaceConfigParser
Tff7b72def Td2a8fftest_parse_simple_interfaceTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3config_text Tff7b72= Ta5d6ff"""
Ta5d6ff[[Test Interface]]
Ta5d6ff type = TCPClientInterface
Ta5d6ff enabled = yes
Ta5d6ff target_host = 127.0.0.1
Ta5d6ff target_port = 4242
Ta5d6ff"""
Te6edf3interfaces Tff7b72= Te6edf3InterfaceConfigParserTff7b72.Td2a8ffparseTb4b4b4(Te6edf3config_textTb4b4b4)
Tff7b72assert Tffa657lenTb4b4b4(Te6edf3interfacesTb4b4b4) Tff7b72== T79c0ff1
Tff7b72assert Te6edf3interfacesTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4[Ta5d6ff"Ta5d6ffnameTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffTest InterfaceTa5d6ff"
Tff7b72assert Te6edf3interfacesTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4[Ta5d6ff"Ta5d6fftypeTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffTCPClientInterfaceTa5d6ff"
Tff7b72assert Te6edf3interfacesTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4[Ta5d6ff"Ta5d6ffenabledTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffyesTa5d6ff"
Tff7b72def Td2a8fftest_parse_multiple_interfacesTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3config_text Tff7b72= Ta5d6ff"""
Ta5d6ff[[Interface One]]
Ta5d6ff type = RNodeInterface
Ta5d6ff[[Interface Two]]
Ta5d6ff type = TCPClientInterface
Ta5d6ff"""
Te6edf3interfaces Tff7b72= Te6edf3InterfaceConfigParserTff7b72.Td2a8ffparseTb4b4b4(Te6edf3config_textTb4b4b4)
Tff7b72assert Tffa657lenTb4b4b4(Te6edf3interfacesTb4b4b4) Tff7b72== T79c0ff2
Tff7b72assert Te6edf3interfacesTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4[Ta5d6ff"Ta5d6ffnameTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffInterface OneTa5d6ff"
Tff7b72assert Te6edf3interfacesTb4b4b4[T79c0ff1Tb4b4b4]Tb4b4b4[Ta5d6ff"Ta5d6ffnameTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffInterface TwoTa5d6ff"
Tff7b72def Td2a8fftest_parse_best_effort_on_failureTb4b4b4(Tb4b4b4)Tb4b4b4:
T8b949e# Invalid config that should trigger best-effort parsing
Te6edf3config_text Tff7b72= Ta5d6ff"""
Ta5d6ff[[Broken Interface]
Ta5d6ff type = something
Ta5d6ff[[Fixed Interface]]
Ta5d6ff type = fixed
Ta5d6ff"""
Te6edf3interfaces Tff7b72= Te6edf3InterfaceConfigParserTff7b72.Td2a8ffparseTb4b4b4(Te6edf3config_textTb4b4b4)
Tff7b72assert Tffa657lenTb4b4b4(Te6edf3interfacesTb4b4b4) Tff7b72>Tff7b72= T79c0ff1
Te6edf3names Tff7b72= Tb4b4b4[Te6edf3iTb4b4b4[Ta5d6ff"Ta5d6ffnameTa5d6ff"Tb4b4b4] Tff7b72for Te6edf3i Tff7b72in Te6edf3interfacesTb4b4b4]
Tff7b72assert Ta5d6ff"Ta5d6ffFixed InterfaceTa5d6ff" Tff7b72in Te6edf3names
Tff7b72def Td2a8fftest_parse_subsectionsTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3config_text Tff7b72= Ta5d6ff"""
Ta5d6ff[[Interface With Sub]]
Ta5d6ff type = AutoInterface
Ta5d6ff [[[sub_config]]]
Ta5d6ff key = value
Ta5d6ff"""
Te6edf3interfaces Tff7b72= Te6edf3InterfaceConfigParserTff7b72.Td2a8ffparseTb4b4b4(Te6edf3config_textTb4b4b4)
Tff7b72assert Tffa657lenTb4b4b4(Te6edf3interfacesTb4b4b4) Tff7b72== T79c0ff1
Tff7b72assert Ta5d6ff"Ta5d6ffsub_configTa5d6ff" Tff7b72in Te6edf3interfacesTb4b4b4[T79c0ff0Tb4b4b4]
Tff7b72assert Te6edf3interfacesTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4[Ta5d6ff"Ta5d6ffsub_configTa5d6ff"Tb4b4b4]Tb4b4b4[Ta5d6ff"Ta5d6ffkeyTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffvalueTa5d6ff"
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────